home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 2002 #11
/
Amiga Plus CD - 2002 - No. 11.iso
/
Tools
/
MorphOS
/
Poseidon
/
Poseidon-Install
< prev
next >
Wrap
Text File
|
2002-10-27
|
25KB
|
706 lines
;--------------------------------------------------------------------------
; $VER: Poseidon Install V1.5 (05-Oct-02).
;
; Copyright ©2002 Chris Hodges. All rights reserved.
;--------------------------------------------------------------------------
(delopts "force" "askuser" "nofail")
;--------------------------------------------------------------------------
; Flexible installer script! So get our installation environment.
;--------------------------------------------------------------------------
(set #home @execute-dir)
(set #instdatadir "InstallData/")
(set #bonus 0)
;--------------------------------------------------------------------------
; English Installer Strings
;--------------------------------------------------------------------------
(if (= @language "english")
(
(set #lang 1)
(set #suffix "_E")
(set #licence "Licence.txt")
(set #ioerror "An error occured during the installation, please report it to me.\n\nThanks.")
(set #updateinstaller
(cat "\n"
"Just to let you know ESCOM AG has released a new version of the installer program."
"\n\nVersion 43.3 can be found on Aminet in:\n\n/util/misc/Installer-43_3.lha\n\n"
"You might want to upgrade soon, if you can, especially if you encounter problems "
"during this installation."
)
)
(set #intro
(cat
("Welcome to the installation program for the\nPoseidon USB Stack V%d.%d\n"
(getversion (cat #instdatadir "libs/poseidon.library")))
"by Chris Hodges <hodges@in.tum.de>"
"\n\nPlease read the Licence before proceeding.\n"
"Continuing on the Installation means you have read and accepted the Licence conditions!\n\n"
)
)
(set #extro
(cat
"All Poseidon files installed. Enjoy!\n\n"
(if #bonus
(
"There is some bonus material in the \"Extra\" drawer, such as fat95 by "
"Torsten Jager, MasonIcons by Martin Merz, and the original "
"LoadModule archive by Torbjörn Andersson. All archives are included with "
"permission. "
"NOTE: The bonus material is included 'as-is' and neither I nor the authors "
"of these products give warrenties of any kind.\n\n"
)
)
"The first thing is to read the manual (in the HELP: directory). After "
"that, load up Trident that can be found in your Prefs drawer."
)
)
(set #copymainlib "Copying main Poseidon library file...\n")
(set #copymainlib_help "\nThis is the main Poseidon stack library. Without it, nothing will work.")
(set #copyhwdrivers "Select the USB hardware drivers you want to install:\n")
(set #copyhwdrivers_help
(cat "\n"
"These are the hardware-dependent USB controller drivers available. Select your "
"USB hardware controller. Poseidon will not work without the correct hardware "
"controller driver."
)
)
(set #copyclasses "Select the USB class drivers you want to install:\n")
(set #copyclasses_help
(cat "\n"
"Class drivers are the software that automatically enables the features of "
"the devices you plug onto the USB. If you don't know, which device will need "
"which class driver, just copy them all, there's no harm done. "
)
)
(set #copydocs "Copying manual...\n")
(set #copydocs_help
(cat "\n"
"As there is no actual installation directory, the docs will be "
"installed in your HELP: directory."
)
)
(set #copygui "Copying Trident (GUI)...\n")
(set #copygui_help
(cat "\n"
"Trident is a graphical user interface to configure your USB setup. "
"A good place to store this program is your Prefs folder. Trident "
"requires MUI."
)
)
(set #copytools "Copying Tools...\n")
(set #copytools_help
(cat "\n"
"There are several shell tools that will be installed in your C: "
"directory. Except for PsdLoadModule, none of these are manadatory. "
"Have a look in the manual about their usage.\n\n"
"PsdLoadModule is written by Torbjörn Andersson and included with "
"friendly permission."
)
)
(set #copyromtag "Copying RomTag Installer...\n")
(set #copyromtag_help
(cat "\n"
"Poseidon can be installed reset-proof, so that is already available "
"in the boot menu. This is a small shell script that will both install "
"or uninstall Poseidon residently."
)
)
(set #copystackloader "Copying initial config...\n")
(set #copystackloader_help
(cat "\n"
"The stack config is saved in an executable file that can be run to "
"load up the stack itself. This config file is normally stored in "
"the ENVARC: directory."
)
)
(set #copydosdriver "Copying example DOSDriver...\n")
(set #copydosdriver_help
(cat "\n"
"This is an example DosDriver mountlist to use with the mass "
"storage class for media containing FAT filesystems."
)
)
(set #copyvhi "Copying Webcam driver for VHI Studio...\n")
(set #copyvhi_help
(cat "\n"
"A driver for PenCam cameras for VHI Studio is included in this "
"package and will be installed in LIBS:VHI/"
)
)
(set #askstartonboot "Do you want Poseidon to be started automatically on bootup?\n")
(set #askstartonboot_help
(cat "\n"
"This will just add a line to your user-startup, that will run the "
"PsdStackloader program that must be in ENVARC: for this purpose. "
"This is not mandatory. You can also decide to startup the stack "
"by manually using the Trident GUI."
)
)
(set #createconfig
(cat "\n"
"Do you want to initially start the USB stack and create a default "
"configuration? Otherwise an empty configuration file is copied."
)
)
(set #createconfig_help
(cat "\n"
"Poseidon requires only two things to initially start off. The "
"first thing is the to be used hardware driver, the second the "
"class drivers to add to the system. You now have the option "
"to boot up the stack with the drivers in DEVS:USBHardware "
"and the classes in SYS:Classes/USB. However, if something "
"goes wrong, the installation probably will be aborted.\n\n"
"If you don't want to create this easy-startup configuration "
"file, an empty default config is copied."
)
)
(set #addstartup "Adding the PsdStackloader to your User-Startup-Sequence...\n")
(set #copyinput "Copying new input.device...\n")
(set #addinputload
(cat "\n"
"Adding loading of new input.device to startup-sequence...\n\n"
"Please reboot after installation for the new input.device to "
"become active."
)
)
(set #copyinput_help
(cat
"The old input.device is not capable of handling more than one "
"keyboard and mouse. Several hacking and patching would have been "
"required to ensure that USB mice and keyboards work 100% compatible.\n\n"
"I've decided to go another way. Ralph Schmidt has been so kind and "
"provided me with the source code of the input.device for MorphOS. "
"I made a 68k version and added the required missing features. "
"Without this new input.device you won't be able to use keyrepeat on "
"keyboards and some (especially MUI!) programs will have problems "
"with USB mice and tablets. The input device has to be installed "
"as a RomTag before the first reboot (normally done by SetPatch).\n\n"
"A PsdLoadModule instruction will added to your startup-sequence "
"as first line."
)
)
)
)
;--------------------------------------------------------------------------
; German Installer Strings
;--------------------------------------------------------------------------
(if (= @language "deutsch")
(
(set #lang 2)
(set #suffix "_D")
(set #licence "Lizenz.txt")
(set #ioerror "Leider ist ein Fehler während der Installation aufgetreten. Bitte diesen an mich melden!\n\nDanke!")
(set #updateinstaller
(cat "\n"
"Ich möchte Sie nur kurz folgendes wissen lassen: Die Escom AG hat eine neue Version "
"des Installer-Programms veröffentlicht.\n\nVersion 43.3 kann im Aminet unter "
"/util/misc/Installer-43_3.lha gefunden werden.\n\n"
"Sofern möglich, sollten Sie sich die neue Version besorgen, besonders wenn Sie auf "
"Probleme während der Installation stoßen."
)
)
(set #intro
(cat
("Willkommen zur Installation des\nPoseidon USB Stack V%d.%d\n"
(getversion (cat #instdatadir "libs/poseidon.library")))
"von Chris Hodges <hodges@in.tum.de>"
"\n\nBitte lesen Sie die Lizenzvereinbarungen, bevor Sie weitermachen.\n"
"Durch die Fortsetzung der Installation stimmen Sie den Vereinbarungen zu!\n\n"
)
)
(set #extro
(cat
"Alle Poseidon Dateien wurden installiert. Viel Spaß!\n\n"
(if #bonus
(
"Es gibt einiges Extramaterial im \"Extra\"-Verzeichnis, wie z.B. "
"fat95 von Torsten Jager, MasonIcons von Martin Merz und das "
"original LoadModule archiv von Torbjörn Andersson. Die Beigabe dieser Archive "
"erfolgt mit Genehmigung. "
"ACHTUNG: Das Material wird 'so-wie-es-ist' mitgeliefert und weder die Autoren "
"noch ich geben irgendwelche Garantien auf dieses.\n\n"
)
)
"Das erste, was Sie machen sollten, ist die Anleitung zu lesen (im HELP: Verzeichnis). "
"Danach können Sie Trident laden, das im Ihrem Voreinsteller-Verzeichnis liegt."
)
)
(set #copymainlib "Kopiere die Poseidon Hauptbibliothek...\n")
(set #copymainlib_help "\bDas ist die Hauptbibliothek des Poseidon Stacks. Ohne diese läuft gar nichts!")
(set #copyhwdrivers "Wählen Sie aus, welche USB Hardwaretreiber Sie installieren wollen:\n")
(set #copyhwdrivers_help
(cat "\n"
"Dies sind die hardwareabhängingen Treiber für die verfügbaren USB Controller chips. "
"Wählen Sie Ihren Hardwarekontroller. Poseidon funktioniert nicht ohne den richtigen "
"Hardwaretreiber."
)
)
(set #copyclasses "Wählen Sie die USB Klassentreiber aus, die Sie installieren wollen:\n")
(set #copyclasses_help
(cat "\n"
"Klassentreiber sind der Teil der Software, die automatisch die Funktionen eines "
"USB Gerätes verfügbar machen. Wenn Sie nicht wissen, welche Geräte welche Klassentreiber "
"benötigen, kopieren Sie einfach alle; es kann nichts schiefgehen."
)
)
(set #copydocs "Kopiere Handbuch...\n")
(set #copydocs_help
(cat "\n"
"Nachdem es kein eigentliches Installationsverzeichnis gibt, wird die Anleitung im "
"HELP: Verzeichnis installiert."
)
)
(set #copygui "Kopiere Trident (GUI)...\n")
(set #copygui_help
(cat "\n"
"Trident ist die graphische Benutzeroberfläche, die es Ihnen erlaubt, Ihr USB System "
"zu konfigurieren. Ein guter Platz für dieses Programm ist das Voreinsteller-Verzeichnis "
"(SYS:Prefs). Trident benötigt MUI."
)
)
(set #copytools "Kopiere weitere Hilfsprogramme...\n")
(set #copytools_help
(cat "\n"
"Es gibt einige Shellprogramme, die in Ihrem C: Verzeichnis installiert werden. "
"Mit Ausnahme von PsdLoadModule sind keine dieser Dateien obligatorisch. "
"Werfen Sie einen Blick in die Anleitung über ihre Benutzung.\n\n"
"PsdLoadModule ist ein Programm von Torbjörn Andersson, das mit freundlicher Genehmigung "
"beilegt wurde."
)
)
(set #copyromtag "Kopiere RomTag Installationsprogramm...\n")
(set #copyromtag_help
(cat "\n"
"Poseidon kann resetfest eingebunden werden, so dass USB Geräte bereits im Bootmenü "
"verfügbar sind. Dieses kleine Shell-Script erlaubt es, Poseidon sowohl resetfest zu "
"machen als auch wieder zu entfernen."
)
)
(set #copystackloader "Kopiere Ausgangskonfiguration...\n")
(set #copystackloader_help
(cat "\n"
"Die Konfiguration des Stacks wird in einem ausführbaren Programm gespeichert, "
"welches benutzt werden kann, um den Stack selbst zu starten. Diese Konfigurationsdatei "
"wird normalerweise im ENVARC:-Verzeichnis gespeichert."
)
)
(set #copydosdriver "Kopiere Beispiel-DOSDriver...\n")
(set #copydosdriver_help
(cat "\n"
"Es handelt sich hierbei um eine beispielhafte DOSDriver Mountliste, die man zusammen mit "
"der Mass Storage Klasse verwenden kann, um FAT formatierte Medien anzumelden."
)
)
(set #copyvhi "Kopiere Treiber für Webcams für VHI Studio...\n")
(set #copyvhi_help
(cat "\n"
"Es liegt ein Treiber für Kameras der PenCam Serie bei. "
"Dieser wird in LIBS:VHI/ installiert werden."
)
)
(set #askstartonboot "Wollen Sie, dass Poseidon automatisch beim Bootvorgang geladen wird?")
(set #askstartonboot_help
(cat "\n"
"Dadurch wird nur eine Zeile zu Ihrer User-Startup-Datei hinzugefügt, die das "
"PsdStackloader Programm aufruft, das sich zu diesem Zweck in ENVARC: befinden muss. "
"Das ist nicht zwingend. Sie können auch den Stack per Hand starten, indem Sie die "
"graphische Benutzeroberfläche Trident starten."
)
)
(set #createconfig
(cat "\n"
"Wollen Sie den USB Stack jetzt starten und eine automatische Konfiguration erzeugen? "
"Andernfalls wird nur eine leere Konfigurationsdatei kopiert."
)
)
(set #createconfig_help
(cat "\n"
"Poseidon benötigt nur zwei Dinge, um loslaufen zu können. Beim ersten handelt es sich "
"um den verwendeten Hardwaretreiber, das zweite betrifft die Klassentreiber, die dem "
"System hinzugefügt werden sollen. Sie haben nun die Option, den Stack mit den "
"Hardwaretreibern in DEVS:USBHardware und den Klassen in SYS:Classes/USB zu "
"starten. Falls jedoch irgendetwas schiefläuft, wird die Installation wohl "
"abgebrochen werden.\n\nWenn Sie nicht wollen, dass diese Einfach-Loslegen "
"Startkonfiguration erzeugt wird, so wird nur eine leere Konfiguration "
"kopiert."
)
)
(set #addstartup "Füge den PsdStackloader zu Ihrer User-Startup-Sequence hinzu...\n")
(set #copyinput "Kopiere das neue input.device...\n")
(set #addinputload
(cat "\n"
"Ergänze das Laden des neuen Input-Device zur Startup-Sequence...\n\n"
"Bitte starten Sie das System nach der Installation neu, um das neue "
"input.device zu aktivieren.\n"
)
)
(set #copyinput_help
(cat
"Das alte input.device ist unfähig, mehr als eine Tastatur und Maus zu verwalten. "
"Mehrere Hacks und Patches wären notwendig gewesen, damit USB Mäuse und Tastaturen "
"100% kompatible gewesen wären. Stattdessen habe ich mich für einen anderen Weg "
"entschieden. Ralph Schmidt war so freundlich und hat mir den Sourcecode des "
"input.device von MorphOS zur Verfügung gestellt. Ich erstellte eine 68K Version "
"und ergänzte die fehlenden Features. Ohne dieses neue input.device werden Sie "
"keine Tastenwiederholung auf Tastaturen haben und einige Programme (speziell MUI) "
"werden mit USB Mäusen und Tabletts ein paar Probleme machen. "
"Das input.device muss als RomTag reset-fest eingebunden werden und zwar "
"am besten vor SetPatch, damit nur ein Reboot nötig ist.\n\n"
"Eine PsdLoadModule Anweisung wird als erste Zeile zu Ihrer Startup-Sequence "
"hinzugefügt werden."
)
)
)
)
;--------------------------------------------------------------------------
; Error cleanup code.
;--------------------------------------------------------------------------
(onerror
(
(if (> @ioerr 0)
(message (cat #ioerror "\n\n ERROR CODE: " @ioerr))
)
)
)
;--------------------------------------------------------------------------
; Check on New installer (code supplied by RobR)
;--------------------------------------------------------------------------
(set InstallerVer 0)
(set vernum1 @installer-version)
(set ver1 (/ vernum1 65536))
(set rev1 (- vernum1 (* ver1 65536)))
(set InstallerVer (cat ver1 "." rev1))
(set current_installer "43.3")
(if (< InstallerVer current_installer)
(
(message #updateinstaller)
)
)
;--------------------------------------------------------------------------
; Copy the files.
;--------------------------------------------------------------------------
(run ("Run >NIL: SYS:Utilities/Multiview %s" #licence) (safe))
(message #intro)
(complete 0)
(set #cleanupinst 0)
(if (exists "InstallData.lha")
(
(run "Lha x InstallData.lha T:" (safe))
(set #instdatadir "T:InstallData/")
(set #cleanupinst 1)
)
)
(copylib
(prompt #copymainlib)
(help #copymainlib_help)
(source (cat #instdatadir "Libs/poseidon.library"))
(dest "LIBS:")
(confirm)
)
(complete 15)
(copyfiles
(prompt #copyhwdrivers)
(help #copyhwdrivers_help)
(source (cat #instdatadir "Devs/USBHardware"))
(dest "DEVS:USBHardware")
(confirm)
(all)
)
(complete 30)
(copyfiles
(prompt #copyclasses)
(help #copyclasses_help)
(source (cat #instdatadir "Classes/USB"))
(dest "SYS:Classes/USB")
(confirm)
(all)
)
(complete 40)
(copyfiles
(prompt #copydocs)
(help #copydocs_help)
(source (cat #instdatadir "Docs/Poseidon" #suffix ".guide"))
(dest "HELP:")
(infos)
(newname "Poseidon.guide")
(noposition)
(confirm)
)
(complete 50)
(copyfiles
(prompt #copygui)
(help #copygui_help)
(source (cat #instdatadir "Trident"))
(dest "SYS:Prefs")
(infos)
(noposition)
(confirm)
)
(complete 60)
(copyfiles
(prompt #copyromtag)
(help #copyromtag_help)
(source (cat #instdatadir "PsdRomTag"))
(dest "SYS:Utilities")
(infos)
(noposition)
(confirm)
)
(complete 70)
(copyfiles
(prompt #copytools)
(help #copytools_help)
(source (cat #instdatadir "Tools"))
(dest "C:")
(confirm)
(all)
)
(complete 75)
(if (exists "SYS:Storage/DOSDrivers/UMSD/UMSD")
(
(rename "SYS:Storage/DOSDrivers/UMSD" "SYS:Storage/DOSDrivers/UMSDtmp" (safe))
(delete "SYS:Storage/DOSDrivers/UMSD.info" (safe))
(run "C:Rename SYS:Storage/DOSDrivers/UMSDtmp/#? SYS:Storage/DOSDrivers" (safe))
(delete "SYS:Storage/DOSDrivers/UMSDtmp" (safe))
)
)
(if (not (exists "SYS:Storage/DOSDrivers/UMSD"))
(
(copyfiles
(prompt #copydosdriver)
(help #copydosdriver_help)
(source (cat #instdatadir "Storage/DOSDrivers/UMSD"))
(dest "SYS:Storage/DOSDrivers")
(infos)
(confirm)
)
)
)
(if (not (exists "SYS:Storage/DOSDrivers/UMSD.info"))
(
(copyfiles
(source (cat #instdatadir "Storage/DOSDrivers/UMSD.info"))
(dest "SYS:Storage/DOSDrivers")
)
)
)
(complete 85)
(copyfiles
(prompt #copyvhi)
(help #copyvhi_help)
(source (cat #instdatadir "Libs/VHI"))
(dest "LIBS:VHI")
(confirm)
(all)
)
(complete 90)
(if (not (exists "ENVARC:PsdStackloader"))
(
(if
(askbool
(prompt #createconfig)
(help #createconfig_help)
(default 0)
)
(
(run
(cat
"List >T:AddHW FILES DEVS:USBHardware/#?.device LFORMAT \""
#instdatadir
"Tools/AddUSBHardware %p%n\""
)
)
(run "Execute T:AddHW")
(delete "T:AddHW")
(run (cat #instdatadir "Tools/AddUSBClasses"))
(run (cat #instdatadir "Trident NOGUI SAVE"))
)
(
(copyfiles
(prompt #copystackloader)
(help #copystackloader_help)
(source (cat #instdatadir "PsdStackloader"))
(dest "ENVARC:")
)
)
)
)
)
(complete 90)
(if
(askbool
(prompt #askstartonboot)
(help #askstartonboot_help)
(default 0)
)
(
(startup "Poseidon"
(prompt #addstartup)
(help #askstartonboot_help)
(command "ENVARC:PsdStackloader")
)
)
)
(complete 95)
(copyfiles
(prompt #copyinput)
(help #copyinput_help)
(source (cat #instdatadir "Devs/input.device"))
(dest "DEVS:")
)
(if
(and
(= 5
(run "Search S:Startup-Sequence PATTERN input.device QUIET QUICK"
(safe)
)
)
(and
(exists "C:PsdLoadModule")
(exists "DEVS:input.device")
)
)
(
(run "Echo >T:NewStartup \"PsdLoadModule DEVS:input.device QUIET ;Added by Poseidon-Installer\""
(safe)
)
(run "Type >>T:NewStartup S:Startup-Sequence"
(safe)
)
(copyfiles
(prompt #addinputload)
(help #copyinput_help)
(source "T:NewStartup")
(dest "S:")
(newname "S:Startup-Sequence")
(confirm "average")
)
(delete "T:NewStartup" (safe))
(run "C:PsdLoadModule DEVS:input.device QUIET")
)
)
(complete 100)
(message #extro)
(if #cleanupinst
(
(run
(cat "Delete " #instdatadir " ALL QUIET FORCE")
)
)
)
;--------------------------------------------------------------------------
; Installation successful!
;--------------------------------------------------------------------------
(set @default-dest "all over the place")
(exit)